#include <iostream>
#include <queue>
#include <map>
#include <unordered_map>
#include <vector>
#include <algorithm>
#include <cmath>
#include <string>
#include <cstring>
#include <set>
#include <unordered_set>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int,int> pii;
const int INF=0x3f3f3f3f;
const int N=1e5+10; 
ll a[N];
int main()
{
	int n,m;
	while(cin>>n>>m)
	{
		int sum=0;
		for(int i=0;i<n;i++)
		{
			scanf("%d",a+i);
			sum+=a[i];
	    }
	    int s=sum/m;
	    int num=0;
	    int m=0;
	    int z=0;
	    int idx=0;
	    for(int i=0;i<n;i++)
	    {
	    	num+=a[i];
	    	if(num>s)
	    	{
	    		z++;
	    		m=max(m,num);
	    		num=0;
	    		if(z==m-2)
	    		{
	    			idx=i+1;
	    			break;
				}
	    		
			}
		}
	
    for(int i=idx;i<n;i++)
    {
    	if(num+a[i]<m)
		{
			num+=a[i];
		} 
		else
		{
			int sum1=0;
			for(int j=i;j<n;j++)
			{
				sum1+=a[j];
			}
			m=min(sum1,num);
		}
	}
	cout<<num<<endl;
}

	return 0;
}

